home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 592b.lha / TermII / Fran軋is / Exemples XCMD / XCMDTools.c < prev    next >
C/C++ Source or Header  |  1991-12-22  |  1KB  |  74 lines

  1. /*
  2. *
  3. *       XCMDTools.c
  4. *
  5. *       Routines pour faciliter la gestion des XCMD
  6. *
  7. *       14/11/90 - Création                                     - EG -
  8. *
  9. */
  10. #include <exec/types.h>
  11. #include <exec/memory.h>
  12. #include <exec/ports.h>
  13. #include <clib/exec_protos.h>
  14. #include <clib/alib_protos.h>
  15. #include <stdio.h>
  16. #include "XCMD.h"
  17. #include "XCMDTools.h"
  18.  
  19.  
  20. /*
  21. *       CreateXCMD()
  22. *
  23. *       Création une XCMD. La mémoire est allouée. Elle devra
  24. *       être libéree par un DeleteXCMD. Le port passé en paramètre
  25. *       est celui du processus externe, c'est à dire celui qui recevra
  26. *       les réponses de Term.
  27. *
  28. */
  29. struct XCMD *CreateXCMD(struct MsgPort *port)
  30.   {
  31.   struct XCMD *xcmd = AllocMem(sizeof(struct XCMD),MEMF_PUBLIC|MEMF_CLEAR);
  32.   if(xcmd)
  33.     {
  34.     xcmd->xcmd_Message.mn_Length = sizeof(struct XCMD);
  35.     xcmd->xcmd_Message.mn_ReplyPort = port;
  36.     }
  37.   return(xcmd);
  38.   }
  39.  
  40.  
  41. /*
  42. *       DeleteXCMD()
  43. *
  44. *       Détruit une XCMD. Libère la mémoire allouée à la création.
  45. *
  46. */
  47. void DeleteXCMD(struct XCMD *xcmd)
  48.   {
  49.   FreeMem(xcmd,sizeof(struct XCMD));
  50.   }
  51.  
  52.  
  53. /*
  54. *       SendXCMD()
  55. *
  56. *       Envoie une commande vers Term II. Retourne TRUE si
  57. *       la XCMD a pu être envoyée, FALSE sinon.
  58. *
  59. */
  60. BOOL SendXCMD(struct XCMD *xcmd)
  61.   {
  62.   BOOL sent = FALSE;
  63.   struct MsgPort *TermPort;
  64.   Forbid() ;
  65.     if(TermPort = FindPort("XTERM"))
  66.       {
  67.       PutMsg(TermPort,xcmd);
  68.       sent = TRUE;
  69.       }
  70.   Permit();
  71.   return(sent);
  72.   }
  73.  
  74.